//package Servlet;
//
//import javax.servlet.ServletException;
//import javax.servlet.ServletRequest;
//import javax.servlet.ServletResponse;
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//import java.io.PrintWriter;
//
///**
// * @author 李某
// * * @date 2021/11/19
// * *物有本末，事有终始。知其先后者，则近道矣！
// * *荷花开满池塘的前一天还是半塘荷花半塘云。
// */
//public class liveTime {
//}
//
//
////关于初始化init方法
//class Test {
//    public void init() throws SecurityException {
//        // 初始化代码init 方法被设计成只调用一次。
//        // 它在第一次创建 Servlet 时被调用，在后续每次用户请求时不再调用。
//        // 因此，它是用于一次性初始化，就像 Applet 的 init 方法一样。
//        // Servlet 创建于用户第一次调用对应于该 Servlet 的 URL 时，
//        // 但是您也可以指定 Servlet 在服务器第一次启动时被加载。
//        // 当用户调用一个 Servlet 时，就会创建一个 Servlet 实例，
//        // 每一个用户请求都会产生一个新的线程，
//        // 适当的时候移交给 doGet 或 doPost 方法。
//        // init() 方法简单地创建或加载一些数据，
//        // 这些数据将被用于 Servlet 的整个生命周期。
//    }
//}
//
////关于Servlet服务
//class Test2 {
//    /*
//    service() 方法是执行实际任务的主要方法。
//    Servlet 容器（即 Web 服务器）调用 service() 方法来处理来
//    自客户端（浏览器）的请求，并把格式化的响应写回给客户端。
//
//    service() 方法由容器调用，service 方法在适当的时候调用
//    doGet、doPost、doPut、doDelete 等方法。
//    所以，您不用对 service() 方法做任何动作，
//    您只需要根据来自客户端的请求类型来重写
//    doGet() 或doPost() 即可。
//     */
//    public void service(ServletRequest request,
//                        // 公开的 空的 服务      服务请求        要求
//                        ServletResponse response)
//    //                程序响应           回复
//            throws ServletException, IOException {
//        // 抛出   Servlet异常        IO异常
//    }
//}
//
//// 关于doGet()方法
//class Test3 {
//    /*
//    GET 请求来自于一个 URL 的正常请求，
//    或者来自于一个未指定 METHOD 的 HTML 表单，它由 doGet()
//        方法处理。
//     */
//    public void doGet(HttpServletRequest request,
//                      HttpServletResponse response)
//            throws ServletException, IOException {
//        //servlet 服务代码
//    }
//}
//
//// 关于 doPost()方法
//class Test4 {
//    public void doPost(HttpServletRequest request,
//                       HttpServletResponse response)
//            throws ServletException, IOException {
//        //servlet 代码
//    }
//}
//
//// 关于 destroy()方法
//class Test5 {
//    /*
//    destroy() 方法只会被调用一次，在 Servlet 生命周期结束时被调用。
//        destroy() 方法可以让您的 Servlet
//        关闭数据库连接、停止后台线程、
//    把 Cookie 列表或点击计数器写入到磁盘，并执行其他类似的清理活动。
//    在调用 destroy() 方法之后，servlet 对象被标记为垃圾回收。
//     */
//    public void destroy() {
//        //终止化代码
//    }
//}
//
//
//// Servlet示例
//// 导入必需的 java 库
//// 扩展 HttpServlet 类
//// 配套的 Xml 文件
///*
//<web-app>
//    <servlet>
//        <servlet-name>HelloWorld</servlet-name>
//        <servlet-class>HelloWorld</servlet-class>
//    </servlet>
//
//    <servlet-mapping>
//        <servlet-name>HelloWorld</servlet-name>
//        <url-pattern>/HelloWorld</url-pattern>
//    </servlet-mapping>
//</web-app>
// */
//class HelloWorld extends HttpServlet {
//    //公开的类  继承  服务端
//    private String message;
//    // 私有  字符串类型 message 声明
//
//    public void init() throws ServletException {
//        // init() 初始化方法 抛出的异常 服务异常
//        // 执行必需的初始化
//
//        message = "Hello World";
//        // 初始化字符串
//    }
//
//    public void doGet(HttpServletRequest request,
//                      // doGet方法
//                      HttpServletResponse response)
//            throws ServletException, IOException {
//        // 设置响应内容类型
//        response.setContentType("text/html");
//        //回复    设置内容信息类型  HTML 类型
//
//        // 实际的逻辑是在这里
//        PrintWriter out = response.getWriter();
//        // 排版输出  输出 =   回复     获得输出
//        out.println("<h1>" + message + "</h1>");
//        // 输出=回复获得输出 。 打印 HTML 类型
//    }
//
//    // 调用生命周期最后的 destroy 方法
//    public void destroy() {
//        // 翻译 destroy = 破坏
//
//        //结束方法中 什么也不做
//    }
//}
//
//
//// 关于 servlet 调用 destroy方法 后
//
//class Test6 extends HttpServlet{
//    /*
//    destory 方法被调用后，servlet 被销毁，
//    但是并没有立即被回收，再次请求时，并没有重新初始化。
//     */
//    private String message;
//
//    @Override
//    public void init() throws ServletException {
//        message = "Hello World , Nect To Meet You: " + System.currentTimeMillis();
//        System.out.println("servlet初始化……");
//        super.init();
//    }
//
//    @Override
//    public void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
//        response.setContentType("text/html");
//        PrintWriter writer = response.getWriter();
//        writer.write("<h1>" + message + "</h1>");
//        destroy();
//    }
//
//    @Override
//    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        // TODO Auto-generated method stub
//        super.doPost(req, resp);
//    }
//
//    @Override
//    public void destroy() {
//        System.out.println("servlet销毁！");
//        super.destroy();
//    }
//}
//
//
